#include <arpa/inet.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <netdb.h> 
#include <netinet/in.h>
#include <regex.h>
#include <signal.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ipc.h>
#include <sys/select.h>
#include <sys/shm.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <termios.h>
#include <unistd.h>

struct B{
    int e;
};
struct A{
    struct B b;
    int c;
};

void child()
{
    FILE   *p;
    int     i;
    p = fopen("./log", "rw");
    for(i=0;i<10;i++){
        sleep(1);
        fprintf(p, "i = %d\n", i);
    }
    fclose(p);
}

struct A sa;
struct A *psa;
const char* TestFork(const char* arg)
{
    psa = &sa;

    psa->b.e = 1;

    pid_t pid;

    pid = fork();
    if(pid < -1){
        return "fork fail";
    }else if(pid == 0){
        child();
        return "child";
    }else{
        return "parent";
    }
    return 0;
}
